package htw.renoir.vs.controller;

import htw.renoir.vs.model.Video;
import htw.renoir.vs.model.VideoDao;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

@Stateless
@LocalBean
public class VideoControl
{
	/**
	 * Loescht ein Video aus der Datenbank.
	 * 
	 * @param Video	das zu loeschende Video
	 */
	public static void delete( Video video )
	{
		VideoDao.delete( video );
	}
	
	/**
	 * Sucht ein Video anhand seines Primaerschluessels aus der Datenbank.
	 * 
	 * @param id	der Primaerschluessel des zu suchenden Videos.
	 * @return 		das gefundene Video oder null
	 */
	public static Video get( int id )
	{
		return VideoDao.get( id );
	}
	
	/**
	 * Gibt alle Videos als Liste aus der Datenbank zurueck.
	 * 
	 * @return		alle Videos
	 */
	public static List<Video> getList()
	{
		return VideoDao.getList();
	}
	
	/**
	 * Sucht das Video aus der Datenbank, dessen Titel dem Suchstring entspricht.
	 * 
	 * @param titel	der gesuchte Titel
	 * @return 			das gesuchte Video
	 */
	public static List<Video> getList( String titel )
	{
		return VideoDao.getList( titel );
	}
	
	/**
	 * Speichert ein Video in der Datenbank.</br>
	 * Diese Methode erkennt selbststaendig,</br> 
	 * ob ein Objekt neu in die Datenbank eingefuegt</br>
	 * oder dort aktualisiert werden muss.
	 * 
	 * @param video	das zu speichernde Video
	 */
	public static void saveVideo( Video video )
	{
		VideoDao.saveVideo( video );
	}
}
